λ cargo install
λ cargo install --git
e.g.
$ cargo install --git https://github.com/mrsekut/gyou
λ cargo install --path
localのbinaryをinstall
e.g.
$ cargo install --path .
GPT-4.icon
cargo installでインストールできるもの
コマンドラインツールやアプリケーション
cargo installは、実行可能なバイナリを生成するRustクレートをインストールします。例えば、ripgrepやexaのようなCLIツールが該当します。
インストール対象
Cargo.tomlに[package]セクションと、[[bin]]セクションで定義されたエントリポイントがあるクレートが対象です。
cargo installの動作の仕組み
1. ソースコードをダウンロード
指定されたクレートのソースコードをcrates.io(もしくは指定されたリポジトリ)からダウンロードします。
2. ローカル環境でビルド
ダウンロードしたソースコードをローカル環境でコンパイルして、実行可能なバイナリを生成します。
3. バイナリを配置
コンパイルされたバイナリは、デフォルトでは~/.cargo/binディレクトリにインストールされます。
---
cargo installにRustのランタイムは必要か?
必要
cargo installはローカルでソースコードをコンパイルするため、Rustのツールチェーン(rustcやcargo)がインストールされている必要があります。通常、rustupを通じてインストールします。
理由
クレートはソースコードとして配布されるため、実行可能な状態にするにはローカルでコンパイルする必要があるためです。
---
バイナリ配布との違い
1. cargo install
ソースコードを取得して、ローカルでコンパイルします。
利点: インストール時に自動的にターゲット環境に最適化されます。
欠点: コンパイル時間がかかる(特に依存関係が多い場合)。
2. バイナリ配布
事前にビルドされた実行可能ファイルを直接ダウンロードして配置します。
利点: コンパイル不要でインストールが高速。
欠点: ターゲット環境に合わせたビルドが必要で、クロスプラットフォームのサポートが難しい場合がある。
---
バイナリ配布を行いたい場合
GitHub Releaseなどでビルド済みバイナリを提供する方法があります。
また、cargo-binstallというツールを使うと、ビルド済みバイナリを探してインストールできるため、cargo installの代替になる場合もあります。